home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / rock / AutoCompleteDocument.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  1.6 KB  |  51 lines

  1. package com.extensibility.rock;
  2.  
  3. import java.awt.Toolkit;
  4. import java.util.Enumeration;
  5. import java.util.Vector;
  6. import javax.swing.text.AbstractDocument;
  7. import javax.swing.text.AttributeSet;
  8. import javax.swing.text.BadLocationException;
  9. import javax.swing.text.DefaultStyledDocument;
  10. import javax.swing.text.JTextComponent;
  11.  
  12. public class AutoCompleteDocument extends DefaultStyledDocument {
  13.    Vector knowns;
  14.    JTextComponent fld;
  15.  
  16.    public AutoCompleteDocument(JTextComponent var1, Enumeration var2) {
  17.       this.fld = var1;
  18.       this.knowns = new Vector();
  19.  
  20.       while(var2.hasMoreElements()) {
  21.          this.knowns.addElement(var2.nextElement());
  22.       }
  23.  
  24.    }
  25.  
  26.    public void insertString(int var1, String var2, AttributeSet var3) throws BadLocationException {
  27.       if (var2.length() != 1) {
  28.          super.insertString(var1, var2, var3);
  29.       } else {
  30.          char var4 = var2.charAt(0);
  31.          super.insertString(var1, var2, var3);
  32.          if (var1 >= ((AbstractDocument)this).getLength() - 1) {
  33.             String var5 = this.fld.getText();
  34.  
  35.             for(int var6 = 0; var6 < this.knowns.size(); ++var6) {
  36.                String var7 = (String)this.knowns.elementAt(var6);
  37.                String var8 = var7.substring(0, Math.min(var5.length(), var7.length()));
  38.                if (var5.equals(var8)) {
  39.                   String var9 = var7.substring(var5.length());
  40.                   super.insertString(var1 + 1, var9, var3);
  41.                   this.fld.select(var1 + 1, var1 + 1 + var9.length());
  42.                   return;
  43.                }
  44.             }
  45.  
  46.             Toolkit.getDefaultToolkit().beep();
  47.          }
  48.       }
  49.    }
  50. }
  51.